A Content Addressable Memory (CAM) is an application specific memory that allows its entire contents to be searched within a single clock cycle. Accordingly, a CAM is a storage array designed to quickly find the location of a particular stored value. By comparing the input against the data memory, a CAM determines if an input value matches the values stored in the array. If the comparison is done simultaneously, the CAM is operating at maximum efficiency. A match, when it exists, is found in one clock cycle.
A CAM stores words in an array, similar to a RAM. The write mode is comparable, but the CAM mode is very different. In a RAM, the word in a location is read by the address. In contrast, in a CAM, the data on the input is looking for a match. When a match is found, the output is the address in the array.
The number of address lines limits a RAMs data size. For example, a 10-bit bus addresses 1024 locations of 8-bit data. A CAM does not have this limitation because it does not use an address bus to read a location. To find a match of an 8-bit value in 1024 locations, an 8-bit bus on the input is required. When the data is found in the CAM, a match signal goes active. The output is the matching data address. Because a CAM does not need address lines to find data (CAM mode), the memory size can be easily extended. Accordingly, CAMs have become popular and are widely used in the arena of networking, Ethernet, ATM switches and diverse protocol applications.
However, in a CAM, there exists a need to be able to test the memory to verify that the memory is defect-free. The CAM search functions also need to be tested to verify that the CAM search is not defective. Because the CAM functions can only be verified if the memory is defect-free, often, in new CAM designs, a memory failure obscures defects in the CAM-specific circuitry. Therefore, there is a need to be able to test the CAM-specific circuitry, even if the memory is defective. However, there is no existing conventional method or structure, which tests the CAM-circuitry, notwithstanding that the memory is defective.
Therefore, a need exists to overcome the problems with the prior art as discussed above.